﻿using System;
using System.Windows.Forms;
using SiGeCoPre.Presupuesto_DTO;

namespace SiGeCoPre.Presupuesto_ViewGeneral
{
    /// <summary>
    /// Formulario para elegir un tipo de equipo
    /// </summary>
    public partial class frmTiposEquipo : Form
    {
        static string tipo = "";
        static equipoDTO equipo = null;

        public frmTiposEquipo()
        {
            InitializeComponent();
        }

        private void frmPresupuestos_Load(object sender, EventArgs e)
        {
            //tipos de equipos
            clbTipo.Items.Add("PH6 - 10 mts");
            clbTipo.Items.Add("PH6 - 12 mts");
            clbTipo.Items.Add("PH6 - 21 mts");
            clbTipo.Items.Add("PH7 - 10 mts");
            clbTipo.Items.Add("PH7 - 12 mts");
            clbTipo.Items.Add("PH7 - 21 mts");
            clbTipo.Items.Add("PH8 - 10 mts");
            clbTipo.Items.Add("PH8 - 12 mts");
            clbTipo.Items.Add("PH8 - 21 mts");
        }

        private void btnAsignar_Click(object sender, EventArgs e)
        {
            if (verificar())
            {
                //cargar tipo de equipo
                tipo = clbTipo.CheckedItems[0].ToString();

                //cargar presupuesto segun el equipo
                if (clbTipo.CheckedItems[0].ToString().Split('-')[1].Trim().Equals("10 mts"))
                {
                    frmEquipo10 equipo10 = new frmEquipo10();
                    equipo10.FormClosed += new FormClosedEventHandler(equipo10_FormClosed);
                    equipo10.Show();
                }
                else if (clbTipo.CheckedItems[0].ToString().Split('-')[1].Trim().Equals("12 mts"))
                {
                    frmEquipo12 equipo12 = new frmEquipo12();
                    equipo12.FormClosed += new FormClosedEventHandler(equipo12_FormClosed);
                    equipo12.Show();
                }
                else if (clbTipo.CheckedItems[0].ToString().Split('-')[1].Trim().Equals("21 mts"))
                {
                    frmEquipo21 equipo21 = new frmEquipo21();
                    equipo21.FormClosed += new FormClosedEventHandler(equipo21_FormClosed);
                    equipo21.Show();
                }
            }
        }

        private void equipo10_FormClosed(object sender, FormClosedEventArgs e)
        {
            equipo = new equipoDTO();
            equipo.TipoEquipo = tipo;
            equipo = frmEquipo10.pasarEquipo();
            if (null != equipo)
            {
                this.Close();
                this.Dispose();
            }
        }

        private void equipo12_FormClosed(object sender, FormClosedEventArgs e)
        {
            equipo = new equipoDTO();
            equipo.TipoEquipo = tipo;
            equipo = frmEquipo12.pasarEquipo();
            if (null != equipo)
            {
                this.Close();
                this.Dispose();
            }
        }

        private void equipo21_FormClosed(object sender, FormClosedEventArgs e)
        {
            equipo = new equipoDTO();
            equipo.TipoEquipo = tipo;
            equipo = frmEquipo21.pasarEquipo();
            if (null != equipo)
            {
                this.Close();
                this.Dispose();
            }
        }

        /// <summary>
        /// Intercambia el tipo elegido
        /// </summary>
        /// <returns>Devuelve una cadena de texto con el tipo elegido</returns>
        public static String pasarTipo()
        {
            return tipo;
        }

        /// <summary>
        /// Intercambia el equipo cargado
        /// </summary>
        /// <returns>Devuelve un objeto equipo</returns>
        public static equipoDTO pasarEquipo()
        {
            return equipo;
        }

        private bool verificar()
        {
            bool verificado = false;

            if (clbTipo.CheckedItems.Count != 1)
            {
                errorProvider1.SetError(clbTipo, "Seleccione un sólo Tipo");
            }
            else
            {
                errorProvider1.SetError(clbTipo, String.Empty);
                verificado = true;
            }

            return verificado;
        }
    }
}
